function getBread() {
  return new Promise(resolve => {
    setTimeout(() => {
      console.log('1. 面包已拿到');
      resolve('新鲜的面包');
    }, 1000);
  });
}

function sliceBread(bread) {
  return new Promise(resolve => {
    setTimeout(() => {
      console.log(`2. 正在切 ${bread}`);
      resolve('切好的面包片');
    }, 1000);
  });
}

function spreadJam(slicedBread) {
  return new Promise(resolve => {
    setTimeout(() => {
      console.log(`3. 正在 ${slicedBread} 上涂果酱`);
      resolve('美味的三明治完成了！');
    }, 1000);
  });
}

// 链式调用
console.log('开始制作三明治...');
getBread()
  .then(bread => sliceBread(bread)) // 任务1完成后，将结果传递给任务2
  .then(slicedBread => spreadJam(slicedBread)) //任务2完成后，将结果传递给任务3
  .then(finalSandwich => {
    console.log(finalSandwich); // 最终的结果
  })
  .catch(error => {
    console.error('制作过程中出错:', error);
  });
